package com.youlai.auth;

import com.youlai.system.api.UserFeignClient;
import com.youlai.mall.ums.api.MemberFeignClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * 扩展实现 OAuth2 登录实现
 *  1. 定义 xxxAuthenticationToken 身份验证令牌
 *  2. 定义 xxxAuthenticationConverter 转换器（参数解析器）
 *  3. 定义 xxxAuthenticationProvider 身份验证提供者
 *
 *  xxxAuthenticationConverter：
 *      其职责是从 HTTP 请求中提取必要的参数，并构建一个 xxxAuthenticationToken 对象。这是认证过程的第一步，它确保了请求包含正确的参数并且符合预期的格式
 *  xxxAuthenticationProvider:
 *      主要作用是在接收到 xxxAuthenticationToken 后进行实际的认证逻辑,并最终生成访问令牌（Access Token）和刷新令牌（Refresh Token）
 *
 */

@EnableFeignClients(basePackageClasses = {UserFeignClient.class, MemberFeignClient.class})
@SpringBootApplication
@EnableDiscoveryClient
public class AuthApplication {

    public static void main(String[] args) {
        SpringApplication.run(AuthApplication.class, args);
    }
}
